(directives
   (extern
    (include "GL/glfw.h")
    (macro GLFW_VERSION_MAJOR::long
           "GLFW_VERSION_MAJOR")
    (macro GLFW_VERSION_MINOR::long
           "GLFW_VERSION_MINOR")
    (macro GLFW_VERSION_REVISION::long
           "GLFW_VERSION_REVISION")
    (macro GLFW_RELEASE::long "GLFW_RELEASE")
    (macro GLFW_PRESS::long "GLFW_PRESS")
    (macro GLFW_KEY_UNKNOWN::int "GLFW_KEY_UNKNOWN")
    (macro GLFW_KEY_SPACE::long "GLFW_KEY_SPACE")
    (macro GLFW_KEY_SPECIAL::long "GLFW_KEY_SPECIAL")
    (macro GLFW_KEY_ESC::int "GLFW_KEY_ESC")
    (macro GLFW_KEY_F1::int "GLFW_KEY_F1")
    (macro GLFW_KEY_F2::int "GLFW_KEY_F2")
    (macro GLFW_KEY_F3::int "GLFW_KEY_F3")
    (macro GLFW_KEY_F4::int "GLFW_KEY_F4")
    (macro GLFW_KEY_F5::int "GLFW_KEY_F5")
    (macro GLFW_KEY_F6::int "GLFW_KEY_F6")
    (macro GLFW_KEY_F7::int "GLFW_KEY_F7")
    (macro GLFW_KEY_F8::int "GLFW_KEY_F8")
    (macro GLFW_KEY_F9::int "GLFW_KEY_F9")
    (macro GLFW_KEY_F10::int "GLFW_KEY_F10")
    (macro GLFW_KEY_F11::int "GLFW_KEY_F11")
    (macro GLFW_KEY_F12::int "GLFW_KEY_F12")
    (macro GLFW_KEY_F13::int "GLFW_KEY_F13")
    (macro GLFW_KEY_F14::int "GLFW_KEY_F14")
    (macro GLFW_KEY_F15::int "GLFW_KEY_F15")
    (macro GLFW_KEY_F16::int "GLFW_KEY_F16")
    (macro GLFW_KEY_F17::int "GLFW_KEY_F17")
    (macro GLFW_KEY_F18::int "GLFW_KEY_F18")
    (macro GLFW_KEY_F19::int "GLFW_KEY_F19")
    (macro GLFW_KEY_F20::int "GLFW_KEY_F20")
    (macro GLFW_KEY_F21::int "GLFW_KEY_F21")
    (macro GLFW_KEY_F22::int "GLFW_KEY_F22")
    (macro GLFW_KEY_F23::int "GLFW_KEY_F23")
    (macro GLFW_KEY_F24::int "GLFW_KEY_F24")
    (macro GLFW_KEY_F25::int "GLFW_KEY_F25")
    (macro GLFW_KEY_UP::int "GLFW_KEY_UP")
    (macro GLFW_KEY_DOWN::int "GLFW_KEY_DOWN")
    (macro GLFW_KEY_LEFT::int "GLFW_KEY_LEFT")
    (macro GLFW_KEY_RIGHT::int "GLFW_KEY_RIGHT")
    (macro GLFW_KEY_LSHIFT::int "GLFW_KEY_LSHIFT")
    (macro GLFW_KEY_RSHIFT::int "GLFW_KEY_RSHIFT")
    (macro GLFW_KEY_LCTRL::int "GLFW_KEY_LCTRL")
    (macro GLFW_KEY_RCTRL::int "GLFW_KEY_RCTRL")
    (macro GLFW_KEY_LALT::int "GLFW_KEY_LALT")
    (macro GLFW_KEY_RALT::int "GLFW_KEY_RALT")
    (macro GLFW_KEY_TAB::int "GLFW_KEY_TAB")
    (macro GLFW_KEY_ENTER::int "GLFW_KEY_ENTER")
    (macro GLFW_KEY_BACKSPACE::int
           "GLFW_KEY_BACKSPACE")
    (macro GLFW_KEY_INSERT::int "GLFW_KEY_INSERT")
    (macro GLFW_KEY_DEL::int "GLFW_KEY_DEL")
    (macro GLFW_KEY_PAGEUP::int "GLFW_KEY_PAGEUP")
    (macro GLFW_KEY_PAGEDOWN::int
           "GLFW_KEY_PAGEDOWN")
    (macro GLFW_KEY_HOME::int "GLFW_KEY_HOME")
    (macro GLFW_KEY_END::int "GLFW_KEY_END")
    (macro GLFW_KEY_KP_0::int "GLFW_KEY_KP_0")
    (macro GLFW_KEY_KP_1::int "GLFW_KEY_KP_1")
    (macro GLFW_KEY_KP_2::int "GLFW_KEY_KP_2")
    (macro GLFW_KEY_KP_3::int "GLFW_KEY_KP_3")
    (macro GLFW_KEY_KP_4::int "GLFW_KEY_KP_4")
    (macro GLFW_KEY_KP_5::int "GLFW_KEY_KP_5")
    (macro GLFW_KEY_KP_6::int "GLFW_KEY_KP_6")
    (macro GLFW_KEY_KP_7::int "GLFW_KEY_KP_7")
    (macro GLFW_KEY_KP_8::int "GLFW_KEY_KP_8")
    (macro GLFW_KEY_KP_9::int "GLFW_KEY_KP_9")
    (macro GLFW_KEY_KP_DIVIDE::int
           "GLFW_KEY_KP_DIVIDE")
    (macro GLFW_KEY_KP_MULTIPLY::int
           "GLFW_KEY_KP_MULTIPLY")
    (macro GLFW_KEY_KP_SUBTRACT::int
           "GLFW_KEY_KP_SUBTRACT")
    (macro GLFW_KEY_KP_ADD::int "GLFW_KEY_KP_ADD")
    (macro GLFW_KEY_KP_DECIMAL::int
           "GLFW_KEY_KP_DECIMAL")
    (macro GLFW_KEY_KP_EQUAL::int
           "GLFW_KEY_KP_EQUAL")
    (macro GLFW_KEY_KP_ENTER::int
           "GLFW_KEY_KP_ENTER")
    (macro GLFW_MOUSE_BUTTON_1::long
           "GLFW_MOUSE_BUTTON_1")
    (macro GLFW_MOUSE_BUTTON_2::long
           "GLFW_MOUSE_BUTTON_2")
    (macro GLFW_MOUSE_BUTTON_3::long
           "GLFW_MOUSE_BUTTON_3")
    (macro GLFW_MOUSE_BUTTON_4::long
           "GLFW_MOUSE_BUTTON_4")
    (macro GLFW_MOUSE_BUTTON_5::long
           "GLFW_MOUSE_BUTTON_5")
    (macro GLFW_MOUSE_BUTTON_6::long
           "GLFW_MOUSE_BUTTON_6")
    (macro GLFW_MOUSE_BUTTON_7::long
           "GLFW_MOUSE_BUTTON_7")
    (macro GLFW_MOUSE_BUTTON_8::long
           "GLFW_MOUSE_BUTTON_8")
    (macro GLFW_JOYSTICK_1::long "GLFW_JOYSTICK_1")
    (macro GLFW_JOYSTICK_2::long "GLFW_JOYSTICK_2")
    (macro GLFW_JOYSTICK_3::long "GLFW_JOYSTICK_3")
    (macro GLFW_JOYSTICK_4::long "GLFW_JOYSTICK_4")
    (macro GLFW_JOYSTICK_5::long "GLFW_JOYSTICK_5")
    (macro GLFW_JOYSTICK_6::long "GLFW_JOYSTICK_6")
    (macro GLFW_JOYSTICK_7::long "GLFW_JOYSTICK_7")
    (macro GLFW_JOYSTICK_8::long "GLFW_JOYSTICK_8")
    (macro GLFW_JOYSTICK_9::long "GLFW_JOYSTICK_9")
    (macro GLFW_JOYSTICK_10::long "GLFW_JOYSTICK_10")
    (macro GLFW_JOYSTICK_11::long "GLFW_JOYSTICK_11")
    (macro GLFW_JOYSTICK_12::long "GLFW_JOYSTICK_12")
    (macro GLFW_JOYSTICK_13::long "GLFW_JOYSTICK_13")
    (macro GLFW_JOYSTICK_14::long "GLFW_JOYSTICK_14")
    (macro GLFW_JOYSTICK_15::long "GLFW_JOYSTICK_15")
    (macro GLFW_JOYSTICK_16::long "GLFW_JOYSTICK_16")
    (macro GLFW_WINDOW::long "GLFW_WINDOW")
    (macro GLFW_FULLSCREEN::long "GLFW_FULLSCREEN")
    (macro GLFW_OPENED::long "GLFW_OPENED")
    (macro GLFW_ACTIVE::long "GLFW_ACTIVE")
    (macro GLFW_ICONIFIED::long "GLFW_ICONIFIED")
    (macro GLFW_ACCELERATED::long "GLFW_ACCELERATED")
    (macro GLFW_RED_BITS::long "GLFW_RED_BITS")
    (macro GLFW_GREEN_BITS::long "GLFW_GREEN_BITS")
    (macro GLFW_BLUE_BITS::long "GLFW_BLUE_BITS")
    (macro GLFW_ALPHA_BITS::long "GLFW_ALPHA_BITS")
    (macro GLFW_DEPTH_BITS::long "GLFW_DEPTH_BITS")
    (macro GLFW_STENCIL_BITS::long
           "GLFW_STENCIL_BITS")
    (macro GLFW_REFRESH_RATE::long
           "GLFW_REFRESH_RATE")
    (macro GLFW_ACCUM_RED_BITS::long
           "GLFW_ACCUM_RED_BITS")
    (macro GLFW_ACCUM_GREEN_BITS::long
           "GLFW_ACCUM_GREEN_BITS")
    (macro GLFW_ACCUM_BLUE_BITS::long
           "GLFW_ACCUM_BLUE_BITS")
    (macro GLFW_ACCUM_ALPHA_BITS::long
           "GLFW_ACCUM_ALPHA_BITS")
    (macro GLFW_AUX_BUFFERS::long "GLFW_AUX_BUFFERS")
    (macro GLFW_STEREO::long "GLFW_STEREO")
    (macro GLFW_WINDOW_NO_RESIZE::long
           "GLFW_WINDOW_NO_RESIZE")
    (macro GLFW_FSAA_SAMPLES::long
           "GLFW_FSAA_SAMPLES")
    (macro GLFW_MOUSE_CURSOR::long
           "GLFW_MOUSE_CURSOR")
    (macro GLFW_STICKY_KEYS::long "GLFW_STICKY_KEYS")
    (macro GLFW_STICKY_MOUSE_BUTTONS::long
           "GLFW_STICKY_MOUSE_BUTTONS")
    (macro GLFW_SYSTEM_KEYS::long "GLFW_SYSTEM_KEYS")
    (macro GLFW_KEY_REPEAT::long "GLFW_KEY_REPEAT")
    (macro GLFW_AUTO_POLL_EVENTS::long
           "GLFW_AUTO_POLL_EVENTS")
    (macro GLFW_WAIT::long "GLFW_WAIT")
    (macro GLFW_NOWAIT::long "GLFW_NOWAIT")
    (macro GLFW_PRESENT::long "GLFW_PRESENT")
    (macro GLFW_AXES::long "GLFW_AXES")
    (macro GLFW_BUTTONS::long "GLFW_BUTTONS")
    (macro GLFW_NO_RESCALE_BIT::long
           "GLFW_NO_RESCALE_BIT")
    (macro GLFW_ORIGIN_UL_BIT::long
           "GLFW_ORIGIN_UL_BIT")
    (macro GLFW_BUILD_MIPMAPS_BIT::long
           "GLFW_BUILD_MIPMAPS_BIT")
    (macro GLFW_ALPHA_MAP_BIT::long
           "GLFW_ALPHA_MAP_BIT")
    (macro GLFW_INFINITY::double "GLFW_INFINITY")
    (glfwInit::int () "glfwInit")
    (glfwTerminate::void () "glfwTerminate")
    (glfwGetVersion::void
      (int* int* int*)
      "glfwGetVersion")
    (glfwOpenWindow::int
      (int int int int int int int int int)
      "glfwOpenWindow")
    (glfwOpenWindowHint::void
      (int int)
      "glfwOpenWindowHint")
    (glfwCloseWindow::void () "glfwCloseWindow")
    (glfwSetWindowTitle::void
      (string)
      "glfwSetWindowTitle")
    (glfwGetWindowSize::void
      (int* int*)
      "glfwGetWindowSize")
    (glfwSetWindowSize::void
      (int int)
      "glfwSetWindowSize")
    (glfwSetWindowPos::void
      (int int)
      "glfwSetWindowPos")
    (glfwIconifyWindow::void () "glfwIconifyWindow")
    (glfwRestoreWindow::void () "glfwRestoreWindow")
    (glfwSwapBuffers::void () "glfwSwapBuffers")
    (glfwSwapInterval::void (int) "glfwSwapInterval")
    (glfwGetWindowParam::int
      (int)
      "glfwGetWindowParam")
    (glfwSetWindowSizeCallback::void
      (GLFWwindowsizefun)
      "glfwSetWindowSizeCallback")
    (glfwSetWindowCloseCallback::void
      (GLFWwindowclosefun)
      "glfwSetWindowCloseCallback")
    (glfwSetWindowRefreshCallback::void
      (GLFWwindowrefreshfun)
      "glfwSetWindowRefreshCallback")
    (glfwGetVideoModes::int
      (GLFWvidmode* int)
      "glfwGetVideoModes")
    (glfwGetDesktopMode::void
      (GLFWvidmode*)
      "glfwGetDesktopMode")
    (glfwPollEvents::void () "glfwPollEvents")
    (glfwWaitEvents::void () "glfwWaitEvents")
    (glfwGetKey::int (int) "glfwGetKey")
    (glfwGetMouseButton::int
      (int)
      "glfwGetMouseButton")
    (glfwGetMousePos::void
      (int* int*)
      "glfwGetMousePos")
    (glfwSetMousePos::void
      (int int)
      "glfwSetMousePos")
    (glfwGetMouseWheel::int () "glfwGetMouseWheel")
    (glfwSetMouseWheel::void
      (int)
      "glfwSetMouseWheel")
    (glfwSetKeyCallback::void
      (GLFWkeyfun)
      "glfwSetKeyCallback")
    (glfwSetCharCallback::void
      (GLFWcharfun)
      "glfwSetCharCallback")
    (glfwSetMouseButtonCallback::void
      (GLFWmousebuttonfun)
      "glfwSetMouseButtonCallback")
    (glfwSetMousePosCallback::void
      (GLFWmouseposfun)
      "glfwSetMousePosCallback")
    (glfwSetMouseWheelCallback::void
      (GLFWmousewheelfun)
      "glfwSetMouseWheelCallback")
    (glfwGetJoystickParam::int
      (int int)
      "glfwGetJoystickParam")
    (glfwGetJoystickPos::int
      (int float* int)
      "glfwGetJoystickPos")
    (glfwGetJoystickButtons::int
      (int uchar* int)
      "glfwGetJoystickButtons")
    (glfwGetTime::double () "glfwGetTime")
    (glfwSetTime::void (double) "glfwSetTime")
    (glfwSleep::void (double) "glfwSleep")
    (glfwExtensionSupported::int
      (string)
      "glfwExtensionSupported")
    (glfwGetProcAddress::void*
      (string)
      "glfwGetProcAddress")
    (glfwGetGLVersion::void
      (int* int* int*)
      "glfwGetGLVersion")
    (glfwCreateThread::GLFWthread
      (GLFWthreadfun void*)
      "glfwCreateThread")
    (glfwDestroyThread::void
      (GLFWthread)
      "glfwDestroyThread")
    (glfwWaitThread::int
      (GLFWthread int)
      "glfwWaitThread")
    (glfwGetThreadID::GLFWthread
      ()
      "glfwGetThreadID")
    (glfwCreateMutex::GLFWmutex () "glfwCreateMutex")
    (glfwDestroyMutex::void
      (GLFWmutex)
      "glfwDestroyMutex")
    (glfwLockMutex::void (GLFWmutex) "glfwLockMutex")
    (glfwUnlockMutex::void
      (GLFWmutex)
      "glfwUnlockMutex")
    (glfwCreateCond::GLFWcond () "glfwCreateCond")
    (glfwDestroyCond::void
      (GLFWcond)
      "glfwDestroyCond")
    (glfwWaitCond::void
      (GLFWcond GLFWmutex double)
      "glfwWaitCond")
    (glfwSignalCond::void
      (GLFWcond)
      "glfwSignalCond")
    (glfwBroadcastCond::void
      (GLFWcond)
      "glfwBroadcastCond")
    (glfwGetNumberOfProcessors::int
      ()
      "glfwGetNumberOfProcessors")
    (glfwEnable::void (int) "glfwEnable")
    (glfwDisable::void (int) "glfwDisable")
    (glfwReadImage::int
      (string GLFWimage* int)
      "glfwReadImage")
    (glfwReadMemoryImage::int
      (void* long GLFWimage* int)
      "glfwReadMemoryImage")
    (glfwFreeImage::void
      (GLFWimage*)
      "glfwFreeImage")
    (glfwLoadTexture2D::int
      (string int)
      "glfwLoadTexture2D")
    (glfwLoadMemoryTexture2D::int
      (void* long int)
      "glfwLoadMemoryTexture2D")
    (glfwLoadTextureImage2D::int
      (GLFWimage* int)
      "glfwLoadTextureImage2D")
    (type s-glfw__s1074
          (struct
            (Width::int "Width")
            (Height::int "Height")
            (RedBits::int "RedBits")
            (BlueBits::int "BlueBits")
            (GreenBits::int "GreenBits"))
          "GLFWvidmode")
    (type GLFWvidmode s-glfw__s1074 "GLFWvidmode")
    (type s-glfw__s1076
          (struct
            (Width::int "Width")
            (Height::int "Height")
            (Format::int "Format")
            (BytesPerPixel::int "BytesPerPixel")
            (Data::uchar* "Data"))
          "GLFWimage")
    (type uchar* (pointer uchar) "unsigned char *")
    (type GLFWimage s-glfw__s1076 "GLFWimage")
    (type GLFWthread int "GLFWthread")
    (type void* (pointer void) "void *")
    (type GLFWmutex void* "GLFWmutex")
    (type GLFWcond void* "GLFWcond")
    (type int,int->void "void ($(int,int))")
    (type *int,int->void
          (function void (int int))
          "void ((*$)(int,int))")
    (type GLFWwindowsizefun
          *int,int->void
          "GLFWwindowsizefun")
    (type void->int "int ($(void))")
    (type *void->int
          (function int (void))
          "int ((*$)(void))")
    (type GLFWwindowclosefun
          *void->int
          "GLFWwindowclosefun")
    (type void->void "void ($(void))")
    (type *void->void
          (function void (void))
          "void ((*$)(void))")
    (type GLFWwindowrefreshfun
          *void->void
          "GLFWwindowrefreshfun")
    (type GLFWmousebuttonfun
          *int,int->void
          "GLFWmousebuttonfun")
    (type GLFWmouseposfun
          *int,int->void
          "GLFWmouseposfun")
    (type int->void "void ($(int))")
    (type *int->void
          (function void (int))
          "void ((*$)(int))")
    (type GLFWmousewheelfun
          *int->void
          "GLFWmousewheelfun")
    (type GLFWkeyfun *int,int->void "GLFWkeyfun")
    (type GLFWcharfun *int,int->void "GLFWcharfun")
    (type void*->void "void ($(void *))")
    (type *void*->void
          (function void (void*))
          "void ((*$)(void *))")
    (type GLFWthreadfun *void*->void "GLFWthreadfun")
    (type int* (pointer int) "int *")
    (type int*,int*,int*->void
          "void ($(int *,int *,int *))")
    (type int,int,int,int,int,int,int,int,int->int
          "int ($(int,int,int,int,int,int,int,int,int))")
    (type string->void "void ($(char *))")
    (type int*,int*->void "void ($(int *,int *))")
    (type int->int "int ($(int))")
    (type GLFWwindowsizefun->void
          "void ($(GLFWwindowsizefun))")
    (type GLFWwindowclosefun->void
          "void ($(GLFWwindowclosefun))")
    (type GLFWwindowrefreshfun->void
          "void ($(GLFWwindowrefreshfun))")
    (type GLFWvidmode*,int->int
          "int ($(GLFWvidmode *,int))")
    (type GLFWvidmode*->void
          "void ($(GLFWvidmode *))")
    (type GLFWkeyfun->void "void ($(GLFWkeyfun))")
    (type GLFWcharfun->void "void ($(GLFWcharfun))")
    (type GLFWmousebuttonfun->void
          "void ($(GLFWmousebuttonfun))")
    (type GLFWmouseposfun->void
          "void ($(GLFWmouseposfun))")
    (type GLFWmousewheelfun->void
          "void ($(GLFWmousewheelfun))")
    (type int,int->int "int ($(int,int))")
    (type float* (pointer float) "float *")
    (type int,float*,int->int
          "int ($(int,float *,int))")
    (type int,uchar*,int->int
          "int ($(int,unsigned char *,int))")
    (type void->double "double ($(void))")
    (type double->void "void ($(double))")
    (type string->int "int ($(char *))")
    (type string->void* "void *($(char *))")
    (type GLFWthreadfun,void*->GLFWthread
          "GLFWthread ($(GLFWthreadfun,void *))")
    (type GLFWthread->void "void ($(GLFWthread))")
    (type GLFWthread,int->int
          "int ($(GLFWthread,int))")
    (type void->GLFWthread "GLFWthread ($(void))")
    (type void->GLFWmutex "GLFWmutex ($(void))")
    (type GLFWmutex->void "void ($(GLFWmutex))")
    (type void->GLFWcond "GLFWcond ($(void))")
    (type GLFWcond->void "void ($(GLFWcond))")
    (type GLFWcond,GLFWmutex,double->void
          "void ($(GLFWcond,GLFWmutex,double))")
    (type string,GLFWimage*,int->int
          "int ($(char *,GLFWimage *,int))")
    (type void*,long,GLFWimage*,int->int
          "int ($(void *,long,GLFWimage *,int))")
    (type GLFWimage*->void "void ($(GLFWimage *))")
    (type string,int->int "int ($(char *,int))")
    (type void*,long,int->int
          "int ($(void *,long,int))")
    (type GLFWimage*,int->int
          "int ($(GLFWimage *,int))")
   
))
